package cn.csq.netty.nio;

import java.nio.IntBuffer;

public class BasicBuffer {
    public static void main(String[] args) {

        //创建一个buffer int类型 大小为5，既可以存放5个int
        IntBuffer intBuffer = IntBuffer.allocate(5);

        //向buffer存放数据
//        intBuffer.put(1);
//        intBuffer.put(2);
//        intBuffer.put(3);
//        intBuffer.put(4);
//        intBuffer.put(5);

        for (int i = 0; i < intBuffer.capacity(); i++) {
            intBuffer.put(i * 2);
        }

        //读取数据
        //这个操作叫做切换 应该刚才进行了写操作 现在要读  读写切换

        /**
         * public final Buffer flip() {
         *         limit = position; 读数据不能超过5
         *         position = 0;
         *         mark = -1;
         *         return this;
         *     }
         */
        //整个过程就是 position 从0到5 数组依次插入相关值,然后position == limit
        //反转的方法就是将position 变成limit 然后将position初始化为0
        // position 就相当于一个指针
        intBuffer.flip();

        //还有剩余
        while (intBuffer.hasRemaining()) {
            //get操作 其中维护了一个索引，取出一个就往后移动一个
            System.out.println(intBuffer.get());
            
        }


        //api 设置position的值为1
        intBuffer.position(1);
        intBuffer.limit(4);









    }
}
